
#ifndef __LIBERTY_ENGINE_QUATERNION_H__
#define __LIBERTY_ENGINE_QUATERNION_H__

#include <Liberty3D/Liberty3D.h>

namespace Liberty { namespace Engine {

    class Quaternion {
    protected:
        float _x;
        float _y;
        float _z;
        float _w;

    public:
        inline Quaternion() : _x(0), _y(0), _z(0), _w(0) {
        }

        inline Quaternion(float x, float y, float z, float w) : _x(x), _y(y), _z(z), _w(w) {
        }

    public:
        inline float  operator[](int index) const { return (&_x)[index]; }
        inline float& operator[](int index)       { return (&_x)[index]; }
    };

}}

#endif
